/**
 * Copyright (c) 2019 Coder League
 * All rights reserved.
 *
 * File：ErrorHandleController.java
 * History:
 *         2019年6月26日: Initially created, Chrise.
 */
package club.coderleague.cfss.controller.common;

import javax.servlet.http.HttpServletRequest;

import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 错误处理控制器。
 * @author Chrise
 */
@Controller
public class ErrorHandleController implements ErrorController {
	/**
	 * 错误请求路径。
	 */
	public static final String ERROR_REQUEST_PATH = "/error";
	
	/**
	 * @see org.springframework.boot.web.servlet.error.ErrorController#getErrorPath()
	 */
	@Override
	public String getErrorPath() {
		return ERROR_REQUEST_PATH;
	}
	
	/**
	 * 处理错误。
	 * @author Chrise 2019年6月26日
	 * @param request 请求对象。
	 * @return 错误页面相对路径。
	 */
	@RequestMapping(ERROR_REQUEST_PATH)
	public String handleError(HttpServletRequest request) {
		Integer status = (Integer)request.getAttribute("javax.servlet.error.status_code");
		if (status != null) {
			switch (status) {
				case 404:
					return "/404";
				case 500:
					return "/500";
			}
		}
		return "/unknown";
	}
}
